package com.zhuo.project.order.service.impl;

import java.util.Date;
import java.util.List;
import com.zhuo.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.zhuo.project.order.domain.ZzDiagnoseHeadDto;
import com.zhuo.project.order.mapper.ZzDiagnoseHeadMapper;
import com.zhuo.project.order.domain.ZzDiagnoseHead;
import com.zhuo.project.order.service.IZzDiagnoseHeadService;

/**
 * 处方单Service业务层处理
 * 
 * @author zhuo
 * @date 2020-03-22
 */
@Service
public class ZzDiagnoseHeadServiceImpl implements IZzDiagnoseHeadService 
{
    @Autowired
    private ZzDiagnoseHeadMapper zzDiagnoseHeadMapper;

    /**
     * 查询处方单
     * 
     * @param id 处方单ID
     * @return 处方单
     */
    @Override
    public ZzDiagnoseHead selectZzDiagnoseHeadById(Long id)
    {
        return zzDiagnoseHeadMapper.selectZzDiagnoseHeadById(id);
    }

    @Override
    public ZzDiagnoseHead selectZzDiagnoseHeadByDiagnoseId(String diagnoseId) {
        ZzDiagnoseHead zzDiagnoseHead = new ZzDiagnoseHead();
        zzDiagnoseHead.setDiagnoseId(diagnoseId);
        List<ZzDiagnoseHead> zzDiagnoseHeadList = zzDiagnoseHeadMapper.selectZzDiagnoseHeadList(zzDiagnoseHead);
        if(null != zzDiagnoseHeadList && zzDiagnoseHeadList.size() > 0 ){
            return zzDiagnoseHeadList.get(0);
        }
        return null;
    }

    /**
     * 查询处方单列表
     * 
     * @param zzDiagnoseHead 处方单
     * @return 处方单
     */
    @Override
    public List<ZzDiagnoseHead> selectZzDiagnoseHeadList(ZzDiagnoseHead zzDiagnoseHead)
    {
        return zzDiagnoseHeadMapper.selectZzDiagnoseHeadList(zzDiagnoseHead);
    }

    @Override
    public List<ZzDiagnoseHead> selectZzDiagnoseHeadList(ZzDiagnoseHeadDto zzDiagnoseHeadDto) {
        return zzDiagnoseHeadMapper.selectZzDiagnoseHeadByDeptsList(zzDiagnoseHeadDto);
    }

    /**
     * 新增处方单
     * 
     * @param zzDiagnoseHead 处方单
     * @return 结果
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int insertZzDiagnoseHead(ZzDiagnoseHead zzDiagnoseHead)
    {
        zzDiagnoseHead.setCreateTime(DateUtils.getNowDate());
        return zzDiagnoseHeadMapper.insertZzDiagnoseHead(zzDiagnoseHead);
    }

    /**
     * 修改处方单
     * 
     * @param zzDiagnoseHead 处方单
     * @return 结果
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int updateZzDiagnoseHead(ZzDiagnoseHead zzDiagnoseHead)
    {
        zzDiagnoseHead.setUpdateTime(DateUtils.getNowDate());
        zzDiagnoseHead.setAuditorTime(new Date());
        return zzDiagnoseHeadMapper.updateZzDiagnoseHead(zzDiagnoseHead);
    }

    /**
     * 批量删除处方单
     * 
     * @param ids 需要删除的处方单ID
     * @return 结果
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int deleteZzDiagnoseHeadByIds(Long[] ids)
    {
        return zzDiagnoseHeadMapper.deleteZzDiagnoseHeadByIds(ids);
    }

    /**
     * 删除处方单信息
     * 
     * @param id 处方单ID
     * @return 结果
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int deleteZzDiagnoseHeadById(Long id)
    {
        return zzDiagnoseHeadMapper.deleteZzDiagnoseHeadById(id);
    }
}
